_u_i_o_p Pointer to the _uuuu_iiii_oooo structure.
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
_uuuu_wwww_rrrr_iiii_tttt_eeee_cccc copies a character from the space described by the _uuuu_iiii_oooo structure
pointed to by _u_i_o_p and returns the character to the caller.
The _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg member of the _uuuu_iiii_oooo structure specifies the type of space
from which the copy is made. If _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is set to _UUUU_IIII_OOOO______SSSS_YYYY_SSSS_SSSS_PPPP_AAAA_CCCC_EEEE the
character is copied from a kernel address. If _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is set to
_UUUU_IIII_OOOO______UUUU_SSSS_EEEE_RRRR_SSSS_PPPP_AAAA_CCCC_EEEE the character is copied from a user address.
If the character is successfully copied, _uuuu_wwww_rrrr_iiii_tttt_eeee_cccc updates the appropriate
members of the _uuuu_iiii_oooo and _iiii_oooo_vvvv_eeee_cccc(D4) structures to reflect the copy
(_uuuu_iiii_oooo______oooo_ffff_ffff_ssss_eeee_tttt and _iiii_oooo_vvvv______bbbb_aaaa_ssss_eeee are incremented and _uuuu_iiii_oooo______rrrr_eeee_ssss_iiii_dddd and _iiii_oooo_vvvv______llll_eeee_nnnn are
decremented) and returns the character to the caller.
RRRReeeettttuuuurrrrnnnn VVVVaaaalllluuuueeeessss
If successful, _uuuu_wwww_rrrr_iiii_tttt_eeee_cccc returns the character. _----_1111 is returned if the
space described by the _uuuu_iiii_oooo structure is empty or there is an error.
UUUUSSSSAAAAGGGGEEEE
LLLLeeeevvvveeeellll
Base only if _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is set to _UUUU_IIII_OOOO______UUUU_SSSS_EEEE_RRRR_SSSS_PPPP_AAAA_CCCC_EEEE.
Base or Interrupt if _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is set to _UUUU_IIII_OOOO______SSSS_YYYY_SSSS_SSSS_PPPP_AAAA_CCCC_EEEE.
May sleep if _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is set to _UUUU_IIII_OOOO______UUUU_SSSS_EEEE_RRRR_SSSS_PPPP_AAAA_CCCC_EEEE.
Driver-defined basic locks and read/write locks may be held across calls
to this function if _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is _UUUU_IIII_OOOO______SSSS_YYYY_SSSS_SSSS_PPPP_AAAA_CCCC_EEEE but may not be held if
_uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg is _UUUU_IIII_OOOO______UUUU_SSSS_EEEE_RRRR_SSSS_PPPP_AAAA_CCCC_EEEE.
Driver-defined sleep locks may be held across calls to this function
regardless of the value of _uuuu_iiii_oooo______ssss_eeee_gggg_ffff_llll_gggg.
WWWWaaaarrrrnnnniiiinnnnggggssss
When holding locks across calls to this function, multithreaded drivers
must be careful to avoid creating a deadlock. During the data transfer,
page fault resolution might result in another I/O to the same device.
For example, this could occur if the driver controls the disk drive used